package com.qf.mybatis01.dao;

import com.qf.mybatis01.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserDao {
    /**
     * 根据用户的id查询用户
     * @param id
     * @return
     */
    public User selectUserById(Integer id);

    /**
     * 根据用户的id和密码查询用户
     * @param id
     * @param password
     * @return
     */
    public User selectUserByIDdAndPwd(Integer id ,String password);

    /**
     * 根据用户名和密码查询用户
     * @param name
     * @param password
     * @return
     */
    public User selectUserByNameAndPwd(@Param("username")String name,@Param("password")String password);

    /**
     * 根据用户名和密码查询用户
     *
     * @param map
     * @return
     */
    public User selectUserByNameAndPwdMap(Map map);

    /**
     * 参数为User对象的根据用户名和密码查询用户
     * @param user
     * @return
     */
    public User selectUserByNameAndPwdUser(User user);

    /**
     * 根据传入的用户名的关键字进行模糊查询 sql如下
     * select * from t_users where name like concat('%','','%')
     * @param keyword
     * @return
     */
    public List<User> selectUserByName(@Param("keyword")String keyword);

    /**
     * 根据用户的id删除用户
     * @param id
     * @return
     */
    public int deleteUserById(@Param("id") Integer id);

    /**
     * 修改用户信息
     * 修改的依据是user对象中的id值
     * @param user
     * @return
     */
    public int updateUserById(User user);

    /**
     * 新增一个用户
     * @param user
     * @return
     */
    public int insertUser(User user);
}

